package com.moli.iov.sys.remote;

import com.moli.iov.model.dto.req.PageExtend;
import com.moli.iov.rest.RestResponse;
import com.moli.iov.sys.model.dto.req.CompanyDto;
import com.moli.iov.sys.model.dto.req.UserDto;
import com.moli.iov.sys.model.po.User;
import java.util.List;

/**
 * <p>
 * 用户业务
 * </p>
 *
 * @author zql
 * @since 2019/9/9 11:37
 */
public interface IUserRemoteService {

  /**
   * 分页查询用户列表
   * @param userDto
   * @return
   */
  RestResponse<PageExtend<User>> listUserOfPage(UserDto userDto);



  /**
   * 获取单个用户
   * @param account
   * @return
   */
  RestResponse<User> getUserByAccount(String account);

  RestResponse<List<User>> findByUserIdList(List<Long> userIdList);

  /**
   * 添加用户
   * @param userDto
   * @return
   */
  RestResponse saveUser(UserDto userDto);

  /**
   * 修改用户
   * @param userDto
   * @return
   */
  RestResponse updateUser(UserDto userDto);

  /**
   * 重置密码
   * @param userDto
   * @return
   */
  RestResponse resetPwd(UserDto userDto);

  /**
   * 创建企业超级管理员
   * @param companyDto
   * @return
   */
  RestResponse saveSuperAdminOfCompany(CompanyDto companyDto);

  /**
   * 修改密码
   * @param userDto
   * @return
   */
  RestResponse updatePwd(UserDto userDto);

  /**
   * 根据角色id查询 用户列表
   * @param userDto
   * @return
   */
  RestResponse<List<User>> listUsersByRoleId(UserDto userDto);

}
